The present invention relates to data acquisition, and more particularly to a method of data management in a long record length memory.
Typically digital measurement instruments, such as digital oscilloscopes, place digitized data acquired from an input electrical signal into an acquisition memory for later processing. The acquisition memory is typically divided into two buffers with data being written into the two buffers in an alternating fashion. This insures that at least one buffer contains a valid data record at any time. When data is first written into one of the buffers, triggers that initiate acquisition of the data are disabled. The triggers are not enabled again until a pre-trigger amount of data has been written into the buffer. The pre-trigger data is needed so that a portion of the electrical signal waveform before a trigger event may be drawn on the screen of a display device. Writing continues in a circular fashion in the buffer until the trigger event occurs, and then continues until a post-trigger amount of data is written into the buffer. This insures that the buffer contains data surrounding the trigger event. At this point writing may start in the other buffer, with the first buffer containing acquired data relating to the trigger event for further processing and/or display.
A disadvantage of this double buffer approach is that trigger events are ignored during the time that the pre-trigger data is being written into the buffer. As memory becomes larger, it becomes more desirable to have longer pre-trigger times, causing trigger events to be ignored for longer periods of time. In addition digital instruments are becoming faster and capable of processing trigger events at a high rate of speed. Having a data management scheme that causes trigger events to be ignored for long periods of time goes against the trend of being able to process trigger events at a very fast rate.
In many cases the size of the buffer may be specified. When short buffers are selected, the screen update rate is generally better, but the amount of detail that is viewable is limited. When long buffers are selected, the screen update rate is generally poorer since more data must be processed when making each waveform image, but the amount of detail that is viewable is better. Trigger events are ignored for both short and long buffer sizes during the pre-trigger time as data starts to fill each new buffer.
U.S. Pat. No. 5,929,838 entitled “Acquisition Manager and Method for Alternating Digital Oscilloscope Operation between Fast Update Rate and Long Record Length” describes a method for getting both a fast update rate and high detail. During normal operation the oscilloscope selects a shorter buffer size that results in a good update rate and just enough detail for the screen size. When a user stops the acquisition process, the oscilloscope selects a longer record length for the buffer and attempts to capture one additional record. If a trigger event occurs, this acquisition becomes the last acquisition and has the advantage of good detail. If a trigger event does not occur within a reasonable period of time, the previous record is used and the record has a lower amount of detail. One problem with this method may be a lack of triggers. For instance when a digital circuit fails to operate properly, it may stop generating a signal. The problem causing the failure is often found by examining the operation of the circuit right around the time when the signal stops. The oscilloscope is set to observe the signal and to use the signal as the trigger. However it is not possible to obtain a high resolution acquisition around the time that the signal stops because the oscilloscope only attempts to capture a long record after the user stops acquisition. By this time the circuit has failed, the signal has stopped and the oscilloscope is no longer receiving triggers.
Some digital instruments have the ability to retain many buffers of acquisition data, i.e., an expanded version of the double buffer scheme. Each buffer is divided into pre-trigger data and post-trigger data. As the data is first placed into a new buffer, trigger events are ignored until a pre-trigger amount of data has been written into the buffer. If a trigger is ignored during this time and there are no additional trigger events for a period of time, the data in the circular buffer is overwritten. When acquisition of the data is stopped, the last trigger event may have been ignored. Although the order in which the data is obtained is known, it is not possible to know how many trigger events are lost between each record.
What is desired is a data management scheme for a long data length memory that always captures the last trigger event with high detail and provides a complete record of trigger events.